/* 
 * File:   QRInterface.h
 * Author: gustavo
 *
 * Created on August 21, 2012, 1:53 AM
 */

#ifndef QRINTERFACE_HPP
#define	QRINTERFACE_HPP

#include "DecomposeInterface.hpp"

namespace imp {
	namespace math {

		template <typename T> class QRInterface : public DecomposeInterface< Matrix<T> > {
			/////
		public: /* Constructors */


		public: /* Public Methods */
			virtual const Matrix<T>& getR() const = 0;

			virtual const Matrix<T>& getQt() const = 0;

			virtual const Matrix<T>& getHouseHolderVectors() const = 0;

			virtual bool isSingular() const = 0;
			virtual T determinant() const = 0;
			virtual Matrix<T> solve(Matrix<T>& B) const = 0;
		private:
		};
	}
}

#endif	/* QRINTERFACE_HPP */

